#!/bin/bash

# 百联仓库物流管理系统 - 正式环境停止脚本
# 版本: 3.9.0

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'

# 日志函数
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
log_success() { echo -e "${GREEN}[SUCCESS]${NC} $1"; }
log_warning() { echo -e "${YELLOW}[WARNING]${NC} $1"; }
log_error() { echo -e "${RED}[ERROR]${NC} $1"; }

echo "=================================="
echo "百联仓库物流管理系统 - 正式环境停止脚本"
echo "版本: 3.9.0"
echo "=================================="

# 停止百联系统
log_info "停止百联系统..."
BAILIAN_PID=$(pgrep -f "bailian-admin.jar")

if [[ -n "$BAILIAN_PID" ]]; then
    log_info "找到百联系统进程，PID: $BAILIAN_PID"
    
    # 优雅停止
    log_info "发送停止信号..."
    kill -TERM $BAILIAN_PID
    
    # 等待进程停止
    for i in {1..10}; do
        if ! kill -0 $BAILIAN_PID 2>/dev/null; then
            log_success "百联系统已优雅停止"
            break
        fi
        sleep 1
        echo -n "."
    done
    
    # 如果进程仍在运行，强制停止
    if kill -0 $BAILIAN_PID 2>/dev/null; then
        log_warning "优雅停止超时，强制停止进程..."
        kill -KILL $BAILIAN_PID
        sleep 1
        if ! kill -0 $BAILIAN_PID 2>/dev/null; then
            log_success "百联系统已强制停止"
        else
            log_error "无法停止百联系统进程"
        fi
    fi
else
    log_info "未找到运行中的百联系统进程"
fi

# 检查端口占用
log_info "检查端口占用情况..."
if lsof -i :8080 > /dev/null 2>&1; then
    log_warning "端口8080仍被占用，请检查是否有其他进程"
else
    log_success "端口8080已释放"
fi

echo ""
echo "=================================="
log_success "停止脚本执行完成！"
echo "==================================" 